100 ::
110 CLEAR: REMark Adriens_bas
120 :
130 nb=0: x=0: y=0: d=0: ra=0: max=0
140 min=0: Lx=0: Ly=0: dt=0: noir=0
150 rouge=2: blanc=0: espace=64: haut=0
160 bas=0: gauche=0: droite=0: compte=0
170 Cx=0: Cy=0: Cd=0: loop=0: ct=0: key=0
180 Ly=0: Lx=0: kx=0: ky=0: kd=0: hit=0
190 dn=0: ac=0
200 :
210 VARIABLES: IMAGE: JEUX: STOP
220 ::::
230 :
240 ::::
250 DEFine PROCedure VARIABLES
260  nb=19: x=1: y=2: d=3: ra=3
270   DIM t(nb,3): max=100: min=.5
280    Lx=max/2: Ly=max/2: dt=DATE
290     noir=0: rouge=2: blanc=7
300      espace=64: haut=4: bas=128
310       gauche=2: droite=16
320 END DEFine
330 :
340 DEFine PROCedure IMAGE
350  SCALE max,0,0: CLS#0
360   papier rouge: INK blanc: CLS
370 FOR compte=1 TO nb
380  Cx=RND(1 TO max): t(compte,x)=Cx
390  Cy=RND(1 TO max): t(compte,y)=Cy
400  Cd=RND(3 TO 9)  : t(compte,d)=Cd
410  CIRCLE Cx,Cy,Cd : PAUSE 10
420 END FOR compte
430  PLUS noir: LISTE 10: PAUSE
440 END DEFine
450 ::
460 DEFine PROCedure JEUX
470 REPeat loop
480  PLUS noir
490  FOR ct=1 TO nb
500    Cx=t(ct,x): Cy=t(ct,y): Cd=t(ct,d)
510      INK rouge: CIRCLE Cx,Cy,Cd
520    Cx= Cx + RND(-ra TO ra)
530    Cy= Cy + RND(-ra TO ra)
540      IF (Cx<=0)  : Cx=max
550      IF (Cx>=max): Cx=0
560      IF (Cy<=0)  : Cy=max
570      IF (Cy>=max): Cy=0
580    t(ct,x)=Cx: t(ct,y)=Cy
590      INK blanc: CIRCLE Cx,Cy,Cd
600  END FOR ct: PAUSE 10: TOUCHES
610   AT#0, 1,61: PRINT#0, DATE-dt
620 END REPeat loop
630 END DEFine
640 ::
650 DEFine PROCedure TOUCHES
660  PLUS rouge: key=KEYROW(1)
670 IF (key=haut)   : Ly=Ly+d
680  IF (Ly>max)    : Ly=Ly-d
690 IF (key=bas)    : Ly=Ly-d
700  IF (Ly<0)      : Ly=Ly+d
710 IF (key=gauche) : Lx=Lx-d
720  IF (Lx<0)      : Lx=Lx+d
730 IF (key=droite) : Lx=Lx+d
740  IF (Lx>max)    : Lx=Lx-d
750  PLUS noir
760  IF (key=espace): TESTS
770 END DEFine
780 ::
790 DEFine PROCedure TESTS
800  FOR kt=1 TO nb
810   kx=t(kt,x): ky=t(kt,y): kd=t(kt,d)
820   IF (kd<>min) THEN
830       left=kx-kd: right=kx+kd
840       down=ky-kd:    up=ky+kd
850     IF (Lx>left) AND (Lx<right) THEN
860     IF (Ly>down) AND (Ly<up) THEN
870           INK rouge: CIRCLE kx,ky,kd
880           t(kt,d)=min: LISTE 0
890           hit=hit+1
900           IF (hit=nb): STOP
910        END IF
920      END IF
930   END IF
940  END FOR kt
950 END DEFine
960 ::
970 DEFine PROCedure PLUS(couleur)
980  INK couleur
990    LINE Lx-d,Ly TO Lx+d,Ly
1000    LINE Lx,Ly-d TO Lx,Ly+d
1010 END DEFine
1020 ::
1030 DEFine PROCedure LISTE(ps)
1040 CLS#2: PRINT#2; TO 6;'x'!!!'y'!!'dia'
1050  FOR dn=1 TO 19
1060    AT#2, dn,1: PRINT#2, dn
1070    FOR ac=1 TO 3
1080      AT#2, dn,ac*5
1090      PRINT#2, t(dn,ac)
1100    END FOR ac: PAUSE ps
1110  END FOR dn
1120 END DEFine
1130 :::::::::::::::::::::::::::::
1140 DEFine PROCedure papier(couleur)
1150 PAPER couleur
1160 END DEFine
1170 :
